﻿Imports System.IO

Public Class MH_BackupDatabase

    Private Sub btnBrowse_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnBrowse.Click
        Dim dialog As New SaveFileDialog()
        dialog.Filter = "Tệp backup *.bak|*.bak"
        If (dialog.ShowDialog() = DialogResult.OK) Then
            'txtDuongDan.Text = dialog.FileName
            Dim strNgayHienHanh As String = DateTime.Now.ToString() 'Lấy thời gian hiện hành
            'Vì tên file ko chứa kí tự / và : nên sửa lại strNgayHienHanh để được tên file hợp lệ
            strNgayHienHanh = strNgayHienHanh.Replace("/", "-") 'Đổi kí tự / của ngày thành -
            strNgayHienHanh = strNgayHienHanh.Replace(":", ".") 'Đổi kí tự : của giờ thành .

            Dim filename As String
            'Cộng thêm 1 đoạn chuổi hiện hành vào tên file
            filename = dialog.FileName.Substring(0, dialog.FileName.Length - 4) + " (" + strNgayHienHanh + ").bak"
            txtDuongDan.Text = filename
        End If
    End Sub

    Private Sub btnChapNhan_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnChapNhan.Click
        Try
            Dim duongdan_nguon As String = Application.StartupPath + "\0865059_0865125_QuanLiHocSinh.mdb"
            Dim duongdan_dich As String = ""

            'Tùy chọn đường dẫn: Mặc định hay Tự chọn
            If (rbtDuongDanMacDinh.Checked = True) Then
                Dim strNgayHienHanh As String = DateTime.Now.ToString() 'Lấy thời gian hiện hành
                'Vì tên file ko chứa kí tự / và : nên sửa lại strNgayHienHanh để được tên file hợp lệ
                strNgayHienHanh = strNgayHienHanh.Replace("/", "-") 'Đổi kí tự / của ngày thành -
                strNgayHienHanh = strNgayHienHanh.Replace(":", ".") 'Đổi kí tự : của giờ thành .

                'Đường dẫn mặc đinh: thư mục Bin\Debug\BACKUPDATABASE
                duongdan_dich = Application.StartupPath + "\BACKUPDATABASE\FILE_CSDL_BACKUP (" + strNgayHienHanh + ").bak"
            End If
            If (rbtDuongDanTuyChon.Checked = True) Then
                'Đường dẫn tùy chọn lấy từ textbox
                duongdan_dich = txtDuongDan.Text
            End If

            'Kiểm tra người dùng có chọn đường dẫn hay chưa
            If (duongdan_dich = "") Then
                MessageBox.Show("Chưa chọn đường dẫn, chưa thể tiến hành backup")
            Else
                'Ý tưởng: copy ra 1 file mới, đổi đuôi thành *.bak
                'Lưu ý: khi restore phải đổi tên thành 0865059_0865125_QuanLiHocSinh.mdb

                Dim file As FileInfo = New FileInfo(duongdan_nguon)
                If (file.Exists()) Then
                    file.CopyTo(duongdan_dich)

                    'Xử lí thanh progress
                    XuLyProgressBar()
                    MessageBox.Show("Backup thành công !!!" + vbNewLine + vbNewLine + "(Vị trí tệp: " + duongdan_dich + " )")
                    ProgressBarX1.Value = 0
                Else
                    MessageBox.Show("Không tìm thấy CSDL")
                End If
            End If

        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try

    End Sub

    Private Sub RadioButton1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles rbtDuongDanTuyChon.CheckedChanged

        If (rbtDuongDanTuyChon.Checked = True) Then
            grpDuongDan.Enabled = True
        Else
            grpDuongDan.Enabled = False
        End If

    End Sub

    Private Sub btnThoat_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnThoat.Click
        Me.Close()
    End Sub

    Private Sub XuLyProgressBar()
        ProgressBarX1.Value = 0

        While ProgressBarX1.Value < 100
            ProgressBarX1.Increment(1)
            System.Threading.Thread.Sleep(30)
        End While
    End Sub
End Class